Make text-to-fact criteria directive: exhaustive extraction + typed-literal compound terms#150
Merged
Merged
Conversation
Add a "완전성 원칙" section so extraction sweeps every section and table
row-by-row instead of skimming prose. Dense tables (참여인력 명부, 재무·등기
현황, 예산 비목, 추진 일정, 경력·특허 실적) were the main silent-omission
source — narrative got captured while repeated table rows were dropped.
- forbid sampling ("대표 몇 개만") of repeated items
- table → triple mapping rule (row key→subject, header→relation, cell→object)
- judge coverage by section/table sweep, not converted-file byte size
- pre-finish self-check, with existing PII exclusions preserved
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Two prompt-hardening changes to
skills/factlog/references/text-to-fact.md,the authoritative extraction criteria. Both convert a soft "may" into a "must,
when X" — a discretionary instruction the extractor reliably skips.
1. Exhaustive extraction (완전성 원칙)
Dense tables — participant rosters, financial/registry status, budget line
items, schedules, career/patent records — are the highest-density fact source,
yet the prior criteria only said "record relation candidates." In practice the
extractor skimmed prose and dropped repeated table rows: a real proposal with
~400 extractable facts yielded ~90 (≈20–25% coverage).
2. Typed-literal compound terms (재량 아님)
Date/amount/ordinal/number objects left as prose strings ("2017.03.08",
"126백만원") can't be sorted/thresholded by the engine. Left to discretion the
extractor never emits compound terms (observed: 0 across a full sync).
date()/ordinal()/amount()/number()for typed literals, with aprose→term mapping table
positive-int + needs a unit table (use
number()for negatives like aloss);
number()projection still pending (feat(typed): number-type comparison (engine has no float text column) #125) but emit for structurerelations actually project and compare
Docs/criteria only — no code paths touched; the file is read at extraction
time so changes are live without reinstall.